home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The 640 MEG Shareware Studio 2
/
The 640 Meg Shareware Studio CD-ROM Volume II (Data Express)(1993).ISO
/
clang
/
nn.zip
/
PATCH02
< prev
next >
Wrap
Text File
|
1989-07-03
|
47KB
|
2,059 lines
*** /usr/storm/nn6.3.1/patchlevel.h
--- patchlevel.h
**************
*** 9,14
* 1989-05-30: Distributed release 6.3 (World)
*
* 1989-06-06: Patch 1: rc.c
*/
#define PATCHLEVEL 1
--- 9,15 -----
* 1989-05-30: Distributed release 6.3 (World)
*
* 1989-06-06: Patch 1: rc.c
+ * 1989-06-28: Patch 2: several files
*/
#define PATCHLEVEL 2
**************
*** 11,15
* 1989-06-06: Patch 1: rc.c
*/
! #define PATCHLEVEL 1
--- 12,16 -----
* 1989-06-28: Patch 2: several files
*/
! #define PATCHLEVEL 2
*** /usr/storm/nn6.3.0/answer.c
--- answer.c
**************
*** 256,263
return 2;
}
} else {
! fputs("\rConfirm cancel: ", stdout); clrline();
! if (yes(1) <= 0) return 0;
}
f = open_news_article(ah, FILL_NEWS_HEADER|GET_ALL_FIELDS, nhbuf, (char *)NULL);
--- 256,263 -----
return 2;
}
} else {
! prompt("Confirm cancel: '%.50s'", ah->subject ? ah->subject : "");
! if (yes(1) <= 0) return 1;
}
f = open_news_article(ah, FILL_NEWS_HEADER|GET_ALL_FIELDS, nhbuf, (char *)NULL);
**************
*** 262,268
f = open_news_article(ah, FILL_NEWS_HEADER|GET_ALL_FIELDS, nhbuf, (char *)NULL);
if (f == NULL) {
! msg("Can't find original article");
return 2;
}
fclose(f);
--- 262,268 -----
f = open_news_article(ah, FILL_NEWS_HEADER|GET_ALL_FIELDS, nhbuf, (char *)NULL);
if (f == NULL) {
! msg("Article not found");
return 2;
}
fclose(f);
**************
*** 275,281
if (aux_sh("cancel",
news.ng_ident, current_group->group_name, "Not canceled"))
! return 3;
return 1;
}
--- 275,281 -----
if (aux_sh("cancel",
news.ng_ident, current_group->group_name, "Not canceled"))
! return -1;
return 0;
}
**************
*** 277,283
news.ng_ident, current_group->group_name, "Not canceled"))
return 3;
! return 1;
}
--- 277,283 -----
news.ng_ident, current_group->group_name, "Not canceled"))
return -1;
! return 0;
}
*** /usr/storm/nn6.3.0/data.h
--- data.h
**************
*** 56,62
# define G_SUBSCRIPTION CF(1) /* from .rc */
# define G_READ CF(2) /* group has been read */
- # define G_RC_UPDATED CF(3) /* .rc is updated */
# define G_DONE CF(4) /* finished with this group */
# define G_NEW CF(5) /* new group */
# define G_FOLDER CF(6) /* "group" is a folder file */
--- 56,61 -----
# define G_SUBSCRIPTION CF(1) /* from .rc */
# define G_READ CF(2) /* group has been read */
# define G_DONE CF(4) /* finished with this group */
# define G_NEW CF(5) /* new group */
# define G_FOLDER CF(6) /* "group" is a folder file */
*** /usr/storm/nn6.3.0/folder.c
--- folder.c
**************
*** 402,408
int cc_save;
fake_group.group_name = path;
! fake_group.group_flag = G_RC_UPDATED | G_FOLDER | G_READ;
init_group(&fake_group);
folder = open_file(group_path_name, OPEN_READ);
--- 402,409 -----
int cc_save;
fake_group.group_name = path;
! fake_group.group_flag = G_FOLDER | G_READ;
! current_group = NULL;
init_group(&fake_group);
folder = open_file(group_path_name, OPEN_READ);
**************
*** 486,493
if (cancel_count) {
clrdisp();
printf("Folder: %s\nFile: %s\n\n", buffer, group_path_name);
! printf("Remove %d article%s from folder? ",
! cancel_count, cancel_count == 1 ? "" : "s");
fl;
switch (yes(1)) {
--- 487,497 -----
if (cancel_count) {
clrdisp();
printf("Folder: %s\nFile: %s\n\n", buffer, group_path_name);
! if (cancel_count == n_articles)
! printf("Cancel all articles and remove folder? ");
! else
! printf("Remove %d article%s from folder? ",
! cancel_count, cancel_count == 1 ? "" : "s");
fl;
switch (yes(1)) {
**************
*** 493,499
switch (yes(1)) {
case 1:
printf("\n\n");
! rewrite_folder();
break;
case 0:
break;
--- 497,509 -----
switch (yes(1)) {
case 1:
printf("\n\n");
! if (cancel_count == n_articles) {
! if (unlink(group_path_name) < 0) {
! printf("Could not unlink %s\n", group_path_name);
! sleep(3);
! }
! } else
! rewrite_folder();
break;
case 0:
break;
**************
*** 526,533
strcpy(oldfile, group_path_name);
sp = strrchr(oldfile, '/');
! if (!sp) goto move_error;
! strcpy(sp+1, "~OLD~FOLDER~");
unlink(oldfile);
if (link(group_path_name, oldfile) < 0) goto move_error;
--- 536,542 -----
strcpy(oldfile, group_path_name);
sp = strrchr(oldfile, '/');
! strcpy((sp == NULL ? oldfile : sp+1), "~OLD~FOLDER~");
unlink(oldfile);
if (link(group_path_name, oldfile) < 0) goto move_error;
*** /usr/storm/nn6.3.0/group.c
--- group.c
**************
*** 376,383
if ((gh->last_article = gh->first_l_article - 1) < 0)
gh->last_article = 0;
gh->first_article = gh->last_article;
! updflag = gh->group_flag & (G_RC_UPDATED|G_READ);
! gh->group_flag &= ~(G_RC_UPDATED|G_READ);
update_rc(gh);
gh->group_flag &= ~(G_RC_UPDATED|G_READ);
gh->group_flag |= updflag;
--- 376,383 -----
if ((gh->last_article = gh->first_l_article - 1) < 0)
gh->last_article = 0;
gh->first_article = gh->last_article;
! updflag = gh->group_flag & G_READ;
! gh->group_flag &= ~G_READ;
update_rc(gh);
gh->group_flag &= ~G_READ;
gh->group_flag |= updflag;
**************
*** 379,385
updflag = gh->group_flag & (G_RC_UPDATED|G_READ);
gh->group_flag &= ~(G_RC_UPDATED|G_READ);
update_rc(gh);
! gh->group_flag &= ~(G_RC_UPDATED|G_READ);
gh->group_flag |= updflag;
}
--- 379,385 -----
updflag = gh->group_flag & G_READ;
gh->group_flag &= ~G_READ;
update_rc(gh);
! gh->group_flag &= ~G_READ;
gh->group_flag |= updflag;
}
**************
*** 455,461
if (menu_cmd == ME_READ || menu_cmd == ME_NO_ARTICLES) {
if (did_selection) {
! int was_read = gh->group_flag & (G_READ|G_RC_UPDATED);
prev_last = gh->last_l_article;
gh->last_l_article = last_article;
--- 455,461 -----
if (menu_cmd == ME_READ || menu_cmd == ME_NO_ARTICLES) {
if (did_selection) {
! int was_read = gh->group_flag & G_READ;
prev_last = gh->last_l_article;
gh->last_l_article = last_article;
**************
*** 463,469
gh->last_l_article = prev_last;
if (last_article < gh->last_l_article) {
! gh->group_flag &= ~ (G_READ|G_RC_UPDATED);
gh->group_flag |= was_read;
release_memory(&sel_marker);
goto after_selection;
--- 463,469 -----
gh->last_l_article = prev_last;
if (last_article < gh->last_l_article) {
! gh->group_flag &= ~G_READ;
gh->group_flag |= was_read;
release_memory(&sel_marker);
goto after_selection;
**************
*** 470,479
}
} else
if (submask == NULL && !also_read_articles &&
! (menu_cmd != ME_NO_ARTICLES ||
! (gh->group_flag & G_NEW) == 0) &&
! (first_art == -1 ||
! current_first_article == gh->first_article + 1))
update_rc(gh);
}
--- 470,478 -----
}
} else
if (submask == NULL && !also_read_articles &&
! (first_art == -1 || current_first_article == gh->first_article + 1)) {
! if (menu_cmd != ME_NO_ARTICLES)
! gh->group_flag &= ~G_NEW;
update_rc(gh);
}
}
**************
*** 475,480
(first_art == -1 ||
current_first_article == gh->first_article + 1))
update_rc(gh);
}
current_first_article = o_first_article;
--- 474,480 -----
if (menu_cmd != ME_NO_ARTICLES)
gh->group_flag &= ~G_NEW;
update_rc(gh);
+ }
}
current_first_article = o_first_article;
**************
*** 890,896
if (yes(0) <= 0) return 0;
add_unread(gh, -1);
! gh->group_flag &= ~G_SUBSCRIPTION;
write_rc_entry(gh, 0);
return 1;
}
--- 890,896 -----
if (yes(0) <= 0) return 0;
add_unread(gh, -1);
! gh->group_flag &= ~(G_SUBSCRIPTION | G_NEW);
write_rc_entry(gh, 0);
return 1;
}
*** /usr/storm/nn6.3.0/keymap.c
--- keymap.c
**************
*** 418,423
"compress", K_COMPRESS, K_ONLY_MORE,
"continue", K_CONTINUE, 0,
"find", K_GOTO_MATCH, K_ONLY_MORE,
"find-next", K_NEXT_MATCH, K_ONLY_MORE,
"follow", K_FOLLOW_UP, 0,
--- 418,425 -----
"compress", K_COMPRESS, K_ONLY_MORE,
"continue", K_CONTINUE, 0,
+ "decode", K_UUDECODE, 0,
+
"find", K_GOTO_MATCH, K_ONLY_MORE,
"find-next", K_NEXT_MATCH, K_ONLY_MORE,
"follow", K_FOLLOW_UP, 0,
*** /usr/storm/nn6.3.0/keymap.h
--- keymap.h
**************
*** 35,40
#define K_UNSUBSCRIBE 0x001b /* (un)subscribe to group */
#define K_GROUP_OVERVIEW 0x001c /* group overview */
#define K_PATCH 0x001d /* pipe article to patch */
#define K_GOTO_GROUP 0x0020 /* goto named group/folder */
--- 35,41 -----
#define K_UNSUBSCRIBE 0x001b /* (un)subscribe to group */
#define K_GROUP_OVERVIEW 0x001c /* group overview */
#define K_PATCH 0x001d /* pipe article to patch */
+ #define K_UUDECODE 0x001e /* uudecode articles */
#define K_GOTO_GROUP 0x0020 /* goto named group/folder */
*** /usr/storm/nn6.3.0/init.c
--- init.c
**************
*** 190,195
"cd", 2, 1,
"compile", 7, 0,
"coredump", 8, 0,
"define", 6, 0,
"help", 4, 2,
"man", 3, 0,
--- 190,196 -----
"cd", 2, 1,
"compile", 7, 0,
"coredump", 8, 0,
+ "decode", 6, 0,
"define", 6, 0,
"help", 4, 2,
"man", 3, 0,
**************
*** 550,557
}
CASE( "unread" ) {
! if (restore_rc(current_group, argv(2) ? ARGVAL(2) : 0))
! return AC_HEADER;
break;
}
--- 551,566 -----
}
CASE( "unread" ) {
! group_header *gh;
! int ix = 1;
!
! if (argv(1) && (gh = lookup(argv(1))) != NULL)
! ix = 2;
! else
! gh = current_group;
!
! if (restore_rc(gh, argv(ix) ? ARGVAL(ix) : 0))
! if (gh == current_group) return AC_HEADER;
break;
}
*** /usr/storm/nn6.3.1/install_aux
--- install_aux
**************
*** 26,32
echo "INSTALLATION COMPLETED"
! if [ -n "$2" ]
then
echo
echo "--------------------------------------------------------"
--- 26,32 -----
echo "INSTALLATION COMPLETED"
! if [ $# -gt 1 ]
then
echo
echo "--------------------------------------------------------"
*** /usr/storm/nn6.3.0/MANIFEST
--- MANIFEST
**************
*** 20,25
db.c
db.h
debug.h
digest.c
execute.c
expire.c
--- 20,26 -----
db.c
db.h
debug.h
+ decode.c
digest.c
execute.c
expire.c
**************
*** 96,101
routes.sample
s-bsd4-2.h
s-bsd4-3.h
s-hpux.h
s-hpux2-1.h
s-sunos3.h
--- 97,103 -----
routes.sample
s-bsd4-2.h
s-bsd4-3.h
+ s-dnix5-2.h
s-hpux.h
s-hpux2-1.h
s-hpux3-0.h
**************
*** 98,103
s-bsd4-3.h
s-hpux.h
s-hpux2-1.h
s-sunos3.h
s-sunos4-0.h
s-template.h
--- 100,106 -----
s-dnix5-2.h
s-hpux.h
s-hpux2-1.h
+ s-hpux3-0.h
s-sunos3.h
s-sunos4-0.h
s-template.h
*** /usr/storm/nn6.3.0/menu.c
--- menu.c
**************
*** 433,439
}
last_k_cmd = cur_k_cmd;
! cur_k_cmd = k_cmd = get_k_cmd();
if (any_message) clrmsg(-1);
alt_key:
--- 433,439 -----
}
last_k_cmd = cur_k_cmd;
! k_cmd = get_k_cmd();
if (any_message) clrmsg(-1);
alt_key:
**************
*** 438,444
alt_key:
! switch (k_cmd) {
case K_UNBOUND:
ding();
--- 438,444 -----
alt_key:
! switch (cur_k_cmd = k_cmd) {
case K_UNBOUND:
ding();
**************
*** 494,499
case K_QUIT:
menu_return(ME_QUIT);
case K_SAVE_NO_HEADER:
case K_SAVE_SHORT_HEADER:
case K_SAVE_FULL_HEADER:
--- 494,504 -----
case K_QUIT:
menu_return(ME_QUIT);
+ case K_CANCEL:
+ savemode = "Cancel";
+ fname = "";
+ goto cancel1;
+
case K_SAVE_NO_HEADER:
case K_SAVE_SHORT_HEADER:
case K_SAVE_FULL_HEADER:
**************
*** 500,506
case K_PRINT:
case K_UNSHAR:
case K_PATCH:
!
if (numa < 0) goto nextmenu;
fname = init_save(k_cmd, &savemode);
--- 505,512 -----
case K_PRINT:
case K_UNSHAR:
case K_PATCH:
! case K_UUDECODE:
!
if (numa < 0) goto nextmenu;
fname = init_save(k_cmd, &savemode);
**************
*** 506,511
fname = init_save(k_cmd, &savemode);
if (fname == NULL) goto Prompt;
enable_stop = 0;
save_selected = 0;
doing_unshar = k_cmd == K_UNSHAR || k_cmd == K_PATCH;
--- 512,518 -----
fname = init_save(k_cmd, &savemode);
if (fname == NULL) goto Prompt;
+ cancel1:
enable_stop = 0;
save_selected = 0;
doing_unshar = k_cmd == K_UNSHAR || k_cmd == K_PATCH;
**************
*** 542,547
ah = articles[article_id];
if (save_selected && (ah->flag & A_SELECT) == 0) continue;
if (doing_unshar) {
did_unshar++;
} else
--- 549,576 -----
ah = articles[article_id];
if (save_selected && (ah->flag & A_SELECT) == 0) continue;
+ if (cur_k_cmd == K_CANCEL) {
+ if (current_group->group_flag & G_FOLDER) {
+ if ((ah->flag & A_CANCEL) == 0) fcancel(ah);
+ } else
+ switch (cancel(ah)) {
+ case -1:
+ did_unshar = 1;
+ continue;
+ case 0:
+ ah->flag |= A_CANCEL;
+ break;
+ default:
+ continue;
+ }
+
+ if (!did_unshar) {
+ how = CANCEL;
+ mark();
+ }
+ continue;
+ }
+
if (doing_unshar) {
did_unshar++;
} else
**************
*** 547,552
} else
if (cura >= 0 && cura <= numa)
prompt("Processing %c...", ident[cura]);
else
prompt("Processing entry %d...", article_id);
--- 576,583 -----
} else
if (cura >= 0 && cura <= numa)
prompt("Processing %c...", ident[cura]);
+ else if (ah->subject != NULL)
+ prompt("Processing '%.50s'...", ah->subject);
else
prompt("Processing entry %d...", article_id);
**************
*** 572,578
m_endinput();
enable_stop = 1;
! end_save();
if (did_unshar) {
any_key(0);
--- 603,610 -----
m_endinput();
enable_stop = 1;
! if (cur_k_cmd != K_CANCEL)
! end_save();
if (did_unshar) {
printf("\r\n");
**************
*** 575,580
end_save();
if (did_unshar) {
any_key(0);
goto redraw;
}
--- 607,613 -----
end_save();
if (did_unshar) {
+ printf("\r\n");
any_key(0);
goto redraw;
}
**************
*** 612,618
goto redraw;
goto Prompt;
!
case K_CANCEL:
if (numa < 0) goto nextmenu;
--- 645,651 -----
goto redraw;
goto Prompt;
! /*
case K_CANCEL:
if (numa < 0) goto nextmenu;
**************
*** 632,638
if (get_k_cmd() == K_ARTICLE_ID)
if (cancel(articles[firsta+article_id]) & 1) goto redraw;
goto Prompt;
!
case K_UNSUBSCRIBE:
if (unsubscribe(current_group)) {
if (!(current_group->group_flag & G_SUBSCRIPTION))
--- 665,671 -----
if (get_k_cmd() == K_ARTICLE_ID)
if (cancel(articles[firsta+article_id]) & 1) goto redraw;
goto Prompt;
! */
case K_UNSUBSCRIBE:
if (unsubscribe(current_group)) {
if (!(current_group->group_flag & G_SUBSCRIPTION))
*** /usr/storm/nn6.3.0/mk_online_man
--- mk_online_man
**************
*** 6,11
-e '/^\.\\"/d' \
-e '/^\.nf/d' \
-e '/^\.fi/d' \
-e 's/^\.[BI] //' "$@" |
awk '
BEGIN {
--- 6,15 -----
-e '/^\.\\"/d' \
-e '/^\.nf/d' \
-e '/^\.fi/d' \
+ -e '/^\.if/d' \
+ -e '/^\.DT/d' \
+ -e '/^\.ta/d' \
+ -e '/^\.nr/d' \
-e 's/^\.[BI] //' "$@" |
awk '
BEGIN {
*** /usr/storm/nn6.3.0/more.c
--- more.c
**************
*** 58,64
register c, col, lno;
register FILE *art;
int more_cmd, eof, skip_spaces, has_space, window_lines;
! int form_feed, ignore_nl;
off_t firstl, lastl;
off_t linepos[LINEMAX];
char linebuf[200], *lp;
--- 58,64 -----
register c, col, lno;
register FILE *art;
int more_cmd, eof, skip_spaces, has_space, window_lines;
! int form_feed, last_ff_line, ignore_nl;
off_t firstl, lastl;
off_t linepos[LINEMAX];
char linebuf[200], *lp;
**************
*** 141,147
rot13 = 0;
compress_space = 0;
! goto_line = -1, prev_goto = 1;
match_lines = match_redraw = match_expr = 0;
underline_line = -1;
fake_underline = 0;
--- 141,147 -----
rot13 = 0;
compress_space = 0;
! last_ff_line = goto_line = -1, prev_goto = 1;
match_lines = match_redraw = match_expr = 0;
underline_line = -1;
fake_underline = 0;
**************
*** 398,403
switch (c) {
case '\f':
if (lp == linebuf) {
if (goto_line && lno == lno1) goto next_line;
form_feed = 1;
--- 398,404 -----
switch (c) {
case '\f':
+ last_ff_line = linenum;
if (lp == linebuf) {
if (goto_line > 0 || match_expr || lno == lno1) goto next_line;
form_feed = 1;
**************
*** 399,405
case '\f':
if (lp == linebuf) {
! if (goto_line && lno == lno1) goto next_line;
form_feed = 1;
goto Prompt;
}
--- 400,406 -----
case '\f':
last_ff_line = linenum;
if (lp == linebuf) {
! if (goto_line > 0 || match_expr || lno == lno1) goto next_line;
form_feed = 1;
goto Prompt;
}
**************
*** 475,480
match_lines = 1;
if (linenum > match_botline) {
match_redraw = 0;
linenum -= 5;
goto next_page;
}
--- 476,482 -----
match_lines = 1;
if (linenum > match_botline) {
match_redraw = 0;
+ if (last_ff_line > linenum) last_ff_line = -1;
linenum -= 5;
if (linenum < last_ff_line) linenum = last_ff_line;
goto next_page;
**************
*** 476,481
if (linenum > match_botline) {
match_redraw = 0;
linenum -= 5;
goto next_page;
}
match_redraw = (stop_line < 0);
--- 478,484 -----
match_redraw = 0;
if (last_ff_line > linenum) last_ff_line = -1;
linenum -= 5;
+ if (linenum < last_ff_line) linenum = last_ff_line;
goto next_page;
}
match_redraw = (stop_line < 0);
**************
*** 665,670
case K_PRINT:
case K_UNSHAR:
case K_PATCH:
putchar(CR);
if (init_save(c, (char **)NULL) != NULL) {
--- 668,674 -----
case K_PRINT:
case K_UNSHAR:
case K_PATCH:
+ case K_UUDECODE:
putchar(CR);
if (init_save(c, (char **)NULL) != NULL) {
**************
*** 695,701
goto Prompt;
}
! if (cancel(ah) == 0) goto Prompt;
more_return(MC_NEXT);
case K_UNSUBSCRIBE:
--- 699,705 -----
goto Prompt;
}
! if (cancel(ah) > 0) goto Prompt;
more_return(MC_NEXT);
case K_UNSUBSCRIBE:
*** /usr/storm/nn6.3.0/nn.1
--- nn.1
**************
*** 768,773
article through the patch command.
The output from the patch process will be piped through the pager
defined in the \fBpager\fP variable and appear on the screen.
.TP
\&\fB:unshar\fP {\fBunshar\fP}
Unshar articles. You will be prompted for the name of a directory in
--- 768,775 -----
article through the patch command.
The output from the patch process will be piped through the pager
defined in the \fBpager\fP variable and appear on the screen.
+ The output is also saved in (or appended to) a file named
+ \fIPatch.Result\fP in the patch directory.
.TP
\&\fB:unshar\fP {\fBunshar\fP}
Unshar articles. You will be prompted for the name of a directory in
**************
*** 777,782
During the unpacking, the normal output from the unshar process will
appear on the screen, and the menu or article text will be redrawn when
the process is finished.
.LP
In reading mode, the following keys can also be used to invoke the
save commands:
--- 779,802 -----
During the unpacking, the normal output from the unshar process will
appear on the screen, and the menu or article text will be redrawn when
the process is finished.
+ The output is also saved in (or appended to) a file named
+ \fIUnshar.Result\fP in the unshar directory.
+ .TP
+ \&\fB:decode\fP {\fBdecode\fP}
+ Decode \fIuuencoded\fP articles into binary files. You will be
+ prompted for the name of a directory in which you want \fInn\fP to
+ place the decoded binary files (the file names are taken from the
+ uuencoded data).
+ \fInn\fP will combine several articles into single files as needed,
+ and you can even decode unrelated packages (into the same directory)
+ with one \fBdecode\fP command.
+ To be able to decode a binary file which spans several articles,
+ \fInn\fP may have to \fIignore\fP lines which fail the normal sanity checks
+ on uuencoded data instead of treating them as \fItransmission errors\fP.
+ Consequently, it is strongly recommended to check the resulting
+ decoded file using the checksum which is normally contained in the
+ original article. (Actually, you are also supposed to do this after
+ decoding with a stand-alone uudecode program).
.LP
In reading mode, the following keys can also be used to invoke the
save commands:
**************
*** 1546,1553
in the order in which they arrived on the local system (which is a
completely arbitrary order).
.TP
! \fB:unread\fP [ \fIarticles\fP ]
! Mark the current group as unread. If the argument is omitted, the
number of unread articles in the group will be set to the number of
unread articles when \fInn\fP was invoked. Otherwise, the argument
specifies the number of unread articles.
--- 1566,1574 -----
in the order in which they arrived on the local system (which is a
completely arbitrary order).
.TP
! \fB:unread\fP [ \fIgroup\fP ] [ \fIarticles\fP ]
! Mark the current (or specified) group as unread. If the
! \fIarticles\fP argument is omitted, the
number of unread articles in the group will be set to the number of
unread articles when \fInn\fP was invoked. Otherwise, the argument
specifies the number of unread articles.
*** /usr/storm/nn6.3.0/nngrep.sh
--- nngrep.sh
**************
*** 8,13
if [ "$1" = "-a" ] ; then
grep "$2" .nn/rc
else
! grep "^+ .* .*$1" .nn/rc
fi |
awk '{print $3}'
--- 8,13 -----
if [ "$1" = "-a" ] ; then
grep "$2" .nn/rc
else
! grep "^[+=] .* .*$1" .nn/rc
fi |
awk '{print $3}'
*** /usr/storm/nn6.3.0/nntidy.sh
--- nntidy.sh
**************
*** 35,41
if (act) {
X[$1] = 1
L[$1] = $2+0
! if (L[$1] == 0) F[$1] = 0; else F[$1] = $3+0
}
next
}
--- 35,41 -----
if (act) {
X[$1] = 1
L[$1] = $2+0
! if (L[$1] == 0 || $3+0 == 0) F[$1] = 0; else F[$1] = $3-1
}
next
}
**************
*** 43,49
print $0
next
}
! NF == 3 && ($1 == "!" || $1 == "+") {
if (X[$3] != 1) next
S[$3] = $1
if (L[$3] >= $2+0)
--- 43,49 -----
print $0
next
}
! NF == 3 && ($1 == "!" || $1 == "+" || $1 == "=") {
if (X[$3] != 1) next
S[$3] = $1
if (L[$3] >= $2+0)
*** /usr/storm/nn6.3.0/nntp.c
--- nntp.c
**************
*** 32,38
#include <netdb.h>
/* This is necessary due to the definitions in m-XXX.h */
! #ifdef NETWORK_BYTE_ORDER
#include <netinet/in.h>
#endif
--- 32,38 -----
#include <netdb.h>
/* This is necessary due to the definitions in m-XXX.h */
! #ifndef NETWORK_DATABASE
#include <netinet/in.h>
#else
#ifdef NETWORK_BYTE_ORDER
**************
*** 34,39
/* This is necessary due to the definitions in m-XXX.h */
#ifdef NETWORK_BYTE_ORDER
#include <netinet/in.h>
#endif
export char nntp_server[256]; /* name of nntp server */
--- 34,42 -----
/* This is necessary due to the definitions in m-XXX.h */
#ifndef NETWORK_DATABASE
#include <netinet/in.h>
+ #else
+ #ifdef NETWORK_BYTE_ORDER
+ #include <netinet/in.h>
#endif
#endif
**************
*** 35,40
#ifdef NETWORK_BYTE_ORDER
#include <netinet/in.h>
#endif
export char nntp_server[256]; /* name of nntp server */
export int use_nntp = 0; /* bool: t iff we use nntp */
--- 38,44 -----
#ifdef NETWORK_BYTE_ORDER
#include <netinet/in.h>
#endif
+ #endif
export char nntp_server[256]; /* name of nntp server */
export int use_nntp = 0; /* bool: t iff we use nntp */
**************
*** 150,155
fl;
}
nntp_failed = 1;
sockt_rd = nntp_get_socket();
if ((nntp_in = fdopen(sockt_rd, "r")) == NULL)
--- 154,160 -----
fl;
}
nntp_failed = 1;
+ is_connected = 0;
sockt_rd = nntp_get_socket();
if (sockt_rd < 0)
**************
*** 152,158
nntp_failed = 1;
sockt_rd = nntp_get_socket();
! if ((nntp_in = fdopen(sockt_rd, "r")) == NULL)
return -1;
sockt_wr = dup(sockt_rd);
--- 157,167 -----
is_connected = 0;
sockt_rd = nntp_get_socket();
! if (sockt_rd < 0)
! return -1;
!
! if ((nntp_in = fdopen(sockt_rd, "r")) == NULL) {
! close(sockt_rd);
return -1;
}
sockt_wr = dup(sockt_rd);
**************
*** 154,160
sockt_rd = nntp_get_socket();
if ((nntp_in = fdopen(sockt_rd, "r")) == NULL)
return -1;
!
sockt_wr = dup(sockt_rd);
if ((nntp_out = fdopen(sockt_wr, "w")) == NULL) {
nntp_in = NULL; /* from above */
--- 163,169 -----
if ((nntp_in = fdopen(sockt_rd, "r")) == NULL) {
close(sockt_rd);
return -1;
! }
sockt_wr = dup(sockt_rd);
if ((nntp_out = fdopen(sockt_wr, "w")) == NULL) {
close(sockt_wr);
**************
*** 157,162
sockt_wr = dup(sockt_rd);
if ((nntp_out = fdopen(sockt_wr, "w")) == NULL) {
nntp_in = NULL; /* from above */
return -1;
}
--- 166,173 -----
}
sockt_wr = dup(sockt_rd);
if ((nntp_out = fdopen(sockt_wr, "w")) == NULL) {
+ close(sockt_wr);
+ fclose(nntp_in);
nntp_in = NULL; /* from above */
return -1;
}
**************
*** 228,233
if (!is_master)
msg("Connecting to %s: %s", nntp_server, syserr());
(void) close(s);
}
if (x < 0 && !is_master)
(*errfct)("Giving up on NNTP server %s!\n", nntp_server);
--- 239,245 -----
if (!is_master)
msg("Connecting to %s: %s", nntp_server, syserr());
(void) close(s);
+ s = -1;
}
if (x < 0 && !is_master)
(*errfct)("Giving up on NNTP server %s!\n", nntp_server);
**************
*** 240,245
if (connect(s, (struct sockaddr *) &sin, sizeof(sin)) < 0) {
if (is_master)
(*errfct)("Connecting to %s: %s", nntp_server, syserr());
}
#endif
--- 252,258 -----
if (connect(s, (struct sockaddr *) &sin, sizeof(sin)) < 0) {
if (is_master)
(*errfct)("Connecting to %s: %s", nntp_server, syserr());
+ s = -1;
}
#endif
**************
*** 261,266
fprintf(nntp_out, "%s\r\n", string);
if (fflush(nntp_out) == EOF) {
nntp_error();
}
}
--- 274,280 -----
fprintf(nntp_out, "%s\r\n", string);
if (fflush(nntp_out) == EOF) {
nntp_error();
+ return -1;
}
return 0;
}
**************
*** 262,267
if (fflush(nntp_out) == EOF) {
nntp_error();
}
}
/*
--- 276,282 -----
nntp_error();
return -1;
}
+ return 0;
}
/*
**************
*** 277,283
{
register char *cp, *nl;
- errno = 0;
if (fgets(string, size, nntp_in) == NULL) {
nntp_error();
return -1;
--- 292,297 -----
{
register char *cp, *nl;
if (fgets(string, size, nntp_in) == NULL) {
nntp_error();
return -1;
**************
*** 323,329
if (!nntp_failed) { /* avoid infinite recursion */
char line[NNTP_STRLEN];
! nntp_put_server("QUIT");
(void) nntp_get_server(line, sizeof line);
}
--- 337,343 -----
if (!nntp_failed) { /* avoid infinite recursion */
char line[NNTP_STRLEN];
! (void) nntp_put_server("QUIT");
(void) nntp_get_server(line, sizeof line);
}
**************
*** 344,352
char *string;
int size;
{
! (void)nntp_put_server(string);
!
! if (nntp_get_server(string, size) < 0)
return -1;
#ifdef DEBUG
msg("<<< %.75s", string);
--- 358,364 -----
char *string;
int size;
{
! if (nntp_put_server(string) < 0 || nntp_get_server(string, size) < 0)
return -1;
#ifdef DEBUG
msg("<<< %.75s", string);
**************
*** 367,374
{
nntp_failed = 1;
if (is_master) {
! log_entry('N', "Lost connection to server %s: %s", nntp_server, syserr());
! if (is_connected)
nntp_close_server();
} else {
#ifdef DEBUG
--- 379,386 -----
{
nntp_failed = 1;
if (is_master) {
! if (is_connected) {
! log_entry('N', "Lost connection to server %s: %s", nntp_server, syserr());
nntp_close_server();
}
} else {
**************
*** 370,375
log_entry('N', "Lost connection to server %s: %s", nntp_server, syserr());
if (is_connected)
nntp_close_server();
} else {
#ifdef DEBUG
printf("Can't talk to NNTP server %s: %s", nntp_server, syserr());
--- 382,388 -----
if (is_connected) {
log_entry('N', "Lost connection to server %s: %s", nntp_server, syserr());
nntp_close_server();
+ }
} else {
#ifdef DEBUG
printf("Can't talk to NNTP server %s: %s", nntp_server, syserr());
*** /usr/storm/nn6.3.0/nnusage.sh
--- nnusage.sh
**************
*** 8,16
grep '^U:' $LIB/Log |
! awk '
! NF == 7 {
! if (split($7, t, ".") == 2) u[$5] += t[1] * 60 + t[2]
}
END {
for (n in u) {
--- 8,16 -----
grep '^U:' $LIB/Log |
! awk '
! BEGIN {
! any=0
}
NF == 7 {
if (split($7, t, ".") == 2) {
**************
*** 12,17
NF == 7 {
if (split($7, t, ".") == 2) u[$5] += t[1] * 60 + t[2]
}
END {
for (n in u) {
name=substr(n, 2, length(n)-3)
--- 12,23 -----
BEGIN {
any=0
}
+ NF == 7 {
+ if (split($7, t, ".") == 2) {
+ u[$5] += t[1] * 60 + t[2]
+ any=1
+ }
+ }
END {
if (!any) {
printf("No usage statistics\n")
**************
*** 13,18
if (split($7, t, ".") == 2) u[$5] += t[1] * 60 + t[2]
}
END {
for (n in u) {
name=substr(n, 2, length(n)-3)
printf("%s%16d.%02d\n", name, u[n]/60, u[n]%60);
--- 19,28 -----
}
}
END {
+ if (!any) {
+ printf("No usage statistics\n")
+ exit
+ }
for (n in u) {
name=substr(n, 2, length(n)-3)
printf("%-10.10s%8d.%02d\n", name, u[n]/60, u[n]%60);
**************
*** 15,21
END {
for (n in u) {
name=substr(n, 2, length(n)-3)
! printf("%s%16d.%02d\n", name, u[n]/60, u[n]%60);
}
}' |
--- 25,31 -----
}
for (n in u) {
name=substr(n, 2, length(n)-3)
! printf("%-10.10s%8d.%02d\n", name, u[n]/60, u[n]%60);
}
}' |
*** /usr/storm/nn6.3.0/prefix.sh
--- prefix.sh
**************
*** 5,10
#include "update.h"
--------CUT PREFIX HERE--------
&!/bin/sh
& Release RELEASE,VERSION,PATCHLEVEL, No. UPDATE
--- 5,11 -----
#include "update.h"
--------CUT PREFIX HERE--------
+ #ifndef AVOID_SHELL_EXEC
&!/bin/sh
#endif
**************
*** 6,11
--------CUT PREFIX HERE--------
&!/bin/sh
& Release RELEASE,VERSION,PATCHLEVEL, No. UPDATE
--- 7,13 -----
--------CUT PREFIX HERE--------
#ifndef AVOID_SHELL_EXEC
&!/bin/sh
+ #endif
& Release RELEASE,VERSION,PATCHLEVEL, No. UPDATE
*** /usr/storm/nn6.3.1/rc.c
--- rc.c
**************
*** 45,51
* master file has been read in
*/
! #define G_OLD G_NEW /* inverse use during rc reading */
#define G_RENUM G_DONE
--- 45,51 -----
* master file has been read in
*/
! #define G_OLD G_SELECTION
#define G_RENUM G_DONE
**************
*** 166,172
fputc(NL, bak);
}
! if (SUBSCR(line) != '+' && SUBSCR(line) != '!') {
/* unrecognized line */
continue;
}
--- 166,172 -----
fputc(NL, bak);
}
! if (SUBSCR(line) != '+' && SUBSCR(line) != '!' && SUBSCR(line) != '=') {
/* unrecognized line */
continue;
}
**************
*** 182,188
gh->group_flag |= G_OLD;
if (SUBSCR(line) == '+')
gh->group_flag |= G_SUBSCRIPTION;
!
gh->last_article = LASTART(line);
if (gh->last_article > gh->last_l_article)
--- 182,190 -----
gh->group_flag |= G_OLD;
if (SUBSCR(line) == '+')
gh->group_flag |= G_SUBSCRIPTION;
! if (SUBSCR(line) == '=')
! gh->group_flag |= G_SUBSCRIPTION | G_NEW;
!
gh->last_article = LASTART(line);
if (gh->last_article > gh->last_l_article)
**************
*** 207,213
if (gh->group_flag & G_OLD) {
if (gh->group_flag & G_RENUM) /* group is renumbered */
write_rc_entry(gh, 0);
! gh->group_flag &= ~(G_NEW | G_RENUM);
} else {
gh->group_flag |= G_SUBSCRIPTION | G_NEW;
gh->last_article = gh->first_l_article - 1;
--- 209,215 -----
if (gh->group_flag & G_OLD) {
if (gh->group_flag & G_RENUM) /* group is renumbered */
write_rc_entry(gh, 0);
! gh->group_flag &= ~(G_OLD | G_RENUM);
} else {
gh->group_flag |= G_SUBSCRIPTION | G_NEW;
gh->last_article = gh->first_l_article - 1;
**************
*** 272,278
{
add_unread(gh, -1);
! if (no_update || gh->group_flag & G_RC_UPDATED) return;
gh->last_article = gh->last_l_article;
--- 274,280 -----
{
add_unread(gh, -1);
! if (no_update || gh->group_flag & G_READ) return;
gh->last_article = gh->last_l_article;
**************
*** 284,291
write_rc_entry(gh, 0);
- if (gh->group_flag & G_READ) return;
-
gh->group_flag |= G_READ;
if ((gh->group_flag & G_SUBSCRIPTION) == 0) return;
--- 286,291 -----
write_rc_entry(gh, 0);
gh->group_flag |= G_READ;
}
**************
*** 287,294
if (gh->group_flag & G_READ) return;
gh->group_flag |= G_READ;
-
- if ((gh->group_flag & G_SUBSCRIPTION) == 0) return;
}
--- 287,292 -----
write_rc_entry(gh, 0);
gh->group_flag |= G_READ;
}
**************
*** 296,302
register group_header *gh;
long count;
{
! if (no_update || (count == 0 && (gh->group_flag & G_RC_UPDATED) == 0))
return 0;
if (gh->group_flag & G_READ || count > 0) {
--- 294,300 -----
register group_header *gh;
long count;
{
! if (no_update || (count == 0 && (gh->group_flag & G_READ) == 0))
return 0;
if (gh->group_flag & G_READ || count > 0) {
**************
*** 318,324
write_rc_entry(gh, 0);
! gh->group_flag &= ~(G_READ|G_RC_UPDATED);
add_unread(gh, 1);
--- 316,322 -----
write_rc_entry(gh, 0);
! gh->group_flag &= ~G_READ;
add_unread(gh, 1);
**************
*** 469,474
/* update article number */
fprintf(rc, "%c %06ld", /* MUST CHANGE IF LASTARTZ CHANGES */
(gh->group_flag & G_SUBSCRIPTION) ? '+' : '!',
(long)(gh->last_article));
--- 467,473 -----
/* update article number */
fprintf(rc, "%c %06ld", /* MUST CHANGE IF LASTARTZ CHANGES */
+ (gh->group_flag & G_NEW) ? '=' :
(gh->group_flag & G_SUBSCRIPTION) ? '+' : '!',
(long)(gh->last_article));
**************
*** 570,578
/* Notice: unread articles before the last read article are lost */
- if (*sub == NL) /* new group */
- continue;
-
if (subscr) {
last = strrchr(sub, '-');
if (last == NULL) last = strrchr(sub, ',');
--- 569,574 -----
/* Notice: unread articles before the last read article are lost */
if (subscr) {
if (*sub == NL) continue; /* new group */
**************
*** 574,579
continue;
if (subscr) {
last = strrchr(sub, '-');
if (last == NULL) last = strrchr(sub, ',');
if (last == NULL) last = strrchr(sub, ' ');
--- 570,577 -----
/* Notice: unread articles before the last read article are lost */
if (subscr) {
+ if (*sub == NL) continue; /* new group */
+
last = strrchr(sub, '-');
if (last == NULL) last = strrchr(sub, ',');
if (last == NULL) last = strrchr(sub, ' ');
*** /usr/storm/nn6.3.0/s-template.h
--- s-template.h
**************
*** 128,133
#define SHELL "/bin/sh"
/*
* Specify the default mailer to be invoked by nnmail
*/
--- 128,142 -----
#define SHELL "/bin/sh"
/*
+ * Define AVOID_SHELL_EXEC if the system gets confused by
+ * #!/bin/sh
+ * lines in shell scripts, e.g. only reads #! and thinks it
+ * is a csh script.
+ */
+
+ /* #define AVOID_SHELL_EXEC /* */
+
+ /*
* Specify the default mailer to be invoked by nnmail
*/
*** /usr/storm/nn6.3.0/save.c
--- save.c
**************
*** 44,49
#define IS_PIPE 0x1000 /* output is on pipe */
#define DO_UNSHAR 0x2000 /* unshar article (or patch) */
#define DO_PATCH 0x4000 /* patch article */
/* open modes for open_news_article for the various HEADER_HANDLINGs */
--- 44,50 -----
#define IS_PIPE 0x1000 /* output is on pipe */
#define DO_UNSHAR 0x2000 /* unshar article (or patch) */
#define DO_PATCH 0x4000 /* patch article */
+ #define DO_DECODE 0x8000 /* uudecode article */
/* open modes for open_news_article for the various HEADER_HANDLINGs */
**************
*** 144,149
}
break;
case K_PATCH:
save_mode = NO_HEADER | SEPARATE_FILES | DO_UNSHAR | DO_PATCH;
mode_text = "Patch";
--- 145,155 -----
}
break;
+ case K_UUDECODE:
+ save_mode = NO_HEADER | DO_UNSHAR | DO_DECODE;
+ mode_text = "Decode";
+ goto patch1;
+
case K_PATCH:
save_mode = NO_HEADER | SEPARATE_FILES | DO_UNSHAR | DO_PATCH;
mode_text = "Patch";
**************
*** 157,170
patch1:
prompt("\1%s Directory:\1 ", mode_text);
! save_name = get_s(last_dir, NONE, NONE, file_completion);
! if (save_name == NULL) return NULL;
! if (*save_name == NUL)
! save_name = NULL;
! else {
! strcpy(last_dir, save_name);
! }
!
break;
case K_PRINT:
--- 163,171 -----
patch1:
prompt("\1%s Directory:\1 ", mode_text);
! save_name = get_s(last_dir, current_group->save_file, NONE, file_completion);
! if (save_name == NULL || *save_name == NUL) return NULL;
! strcpy(last_dir, save_name);
break;
case K_PRINT:
**************
*** 198,204
if (!(save_mode & IS_PIPE)) {
if (file_exist(save_name, (save_mode & DO_UNSHAR) ? "wd" : "wf")) {
! if (conf_append && (save_mode & DO_UNSHAR) == 0) {
printf("\rAppend to: %s ? ", save_name);
clrline();
if (!yes(0)) return NULL;
--- 199,210 -----
if (!(save_mode & IS_PIPE)) {
if (file_exist(save_name, (save_mode & DO_UNSHAR) ? "wd" : "wf")) {
! if (save_mode & DO_UNSHAR) {
! int len = strlen(save_name);
! if (save_name[len - 1] != '/')
! strcpy(save_name + len, "/");
! } else
! if (conf_append) {
printf("\rAppend to: %s ? ", save_name);
clrline();
if (!yes(0)) return NULL;
**************
*** 210,216
}
if (save_mode & DO_UNSHAR) {
! strcat(save_name, "/");
}
start = ckdir_path(save_name);
--- 216,224 -----
}
if (save_mode & DO_UNSHAR) {
! int len = strlen(save_name);
! if (save_name[len - 1] != '/')
! strcpy(save_name + len, "/");
}
start = ckdir_path(save_name);
**************
*** 244,249
save_mode |= FILE_IS_NEW; /* so save() will open it */
#ifdef PAGED_OUTPUT
if (save_mode & DO_UNSHAR) {
int was_raw = no_raw();
--- 252,262 -----
save_mode |= FILE_IS_NEW; /* so save() will open it */
+ if (save_mode & DO_DECODE) {
+ uud_start(save_name);
+ save_mode &= ~DO_UNSHAR;
+ }
+
#ifdef PAGED_OUTPUT
if (save_mode & DO_UNSHAR) {
int was_raw = no_raw();
**************
*** 258,264
system("fdcheck");
}
#endif
!
return save_name;
}
--- 271,277 -----
system("fdcheck");
}
#endif
!
return save_name;
}
**************
*** 284,289
return 0;
}
if (save_mode & UNIQUE_FILES) {
do {
uniq_counter++;
--- 297,309 -----
return 0;
}
+ if (save_mode & DO_DECODE) {
+ save_file = NULL;
+ c = uudecode(ah, art);
+ fclose(art);
+ return (c < 0) ? 0 : 1;
+ }
+
if (save_mode & UNIQUE_FILES) {
do {
uniq_counter++;
**************
*** 317,323
sprintf(copybuf, "%s %s", unshar_cmd, pager_redir);
#else
sprintf(copybuf,
! "cd %s && %s | tee %s 2>&1 ; cat %s >> %s.Result ; rm %s",
save_name != NULL ? save_name : ".", unshar_cmd,
temp_file, temp_file,
(save_mode & DO_PATCH) ? "Patch" : "Unshar",
--- 337,343 -----
sprintf(copybuf, "%s %s", unshar_cmd, pager_redir);
#else
sprintf(copybuf,
! "cd %s && { %s 2>&1 ; } | tee %s ; cat %s >> %s.Result ; rm %s",
save_name != NULL ? save_name : ".", unshar_cmd,
temp_file, temp_file,
(save_mode & DO_PATCH) ? "Patch" : "Unshar",
**************
*** 450,455
save_file = NULL;
}
#ifdef PAGED_OUTPUT
if (pager_stream != NULL) {
pclose(pager_stream);
--- 470,478 -----
save_file = NULL;
}
+ if (save_mode & DO_DECODE) {
+ uud_end();
+ }
#ifdef PAGED_OUTPUT
if (pager_stream != NULL) {
pclose(pager_stream);
*** /usr/storm/nn6.3.0/selection.c
--- selection.c
**************
*** 17,22
} header;
#ifndef NETWORK_DATABASE
#undef ntohl
#undef htonl
#undef NETWORK_BYTE_ORDER
--- 17,27 -----
} header;
#ifndef NETWORK_DATABASE
+ #undef NETWORK_BYTE_ORDER
+ #define NETWORK_BYTE_ORDER
+ #endif
+
+ #ifdef NETWORK_BYTE_ORDER
#undef ntohl
#undef htonl
#define ntohl(x) (x)
**************
*** 19,25
#ifndef NETWORK_DATABASE
#undef ntohl
#undef htonl
- #undef NETWORK_BYTE_ORDER
#define ntohl(x) (x)
#define htonl(x) (x)
#define NETWORK_BYTE_ORDER
--- 24,29 -----
#ifdef NETWORK_BYTE_ORDER
#undef ntohl
#undef htonl
#define ntohl(x) (x)
#define htonl(x) (x)
#endif
**************
*** 22,28
#undef NETWORK_BYTE_ORDER
#define ntohl(x) (x)
#define htonl(x) (x)
- #define NETWORK_BYTE_ORDER
#endif
struct sel_art {
--- 26,31 -----
#undef htonl
#define ntohl(x) (x)
#define htonl(x) (x)
#endif
struct sel_art {
*** /usr/storm/nn6.3.0/sequence.c
--- sequence.c
**************
*** 175,181
if (st.st_size == 0 || st.st_mtime < st.st_atime) return;
mail_group.group_name = read_mail;
! gh->group_flag = G_FOLDER | G_MAILBOX | G_RC_UPDATED | G_READ;
/* "invent" an unread article for read_news */
gh->last_article = 1;
--- 175,181 -----
if (st.st_size == 0 || st.st_mtime < st.st_atime) return;
mail_group.group_name = read_mail;
! gh->group_flag = G_FOLDER | G_MAILBOX | G_READ;
/* "invent" an unread article for read_news */
gh->last_article = 1;
**************
*** 367,373
mem_check(gh, 1, "group header");
gh->group_name = name;
! gh->group_flag = flag | G_RC_UPDATED | G_READ;
/* "invent" an unread article for read_news */
gh->last_article = 1;
--- 367,373 -----
mem_check(gh, 1, "group header");
gh->group_name = name;
! gh->group_flag = flag | G_READ;
/* "invent" an unread article for read_news */
gh->last_article = 1;
**************
*** 392,398
if (strcmp(group, "NEW") == 0) {
gs_mode = GS_NEW_GROUP;
! gs_length = 127;
} else {
gs_mode = GS_PREFIX;
--- 392,398 -----
if (strcmp(group, "NEW") == 0) {
gs_mode = GS_NEW_GROUP;
! gs_length = 0;
} else {
gs_mode = GS_PREFIX;
*** /usr/storm/nn6.3.0/term.c
--- term.c
**************
*** 213,218
if ((term_name = getenv("TERM")) == NULL)
user_error("No TERM variable in enviroment");
#ifdef USE_TERMINFO
setupterm(0,1,0);
--- 213,224 -----
if ((term_name = getenv("TERM")) == NULL)
user_error("No TERM variable in enviroment");
+
+ #ifdef HAVE_TERMIO
+ ioctl(0, TCGETA, &norm_tty);
+ #else
+ ioctl(0, TIOCGETP, &norm_tty);
+ #endif
#ifdef USE_TERMINFO
setupterm(0,1,0);
**************
*** 291,300
cookie_size = two_cookies = 0;
- #ifdef HAVE_TERMIO
-
- ioctl(0, TCGETA, &norm_tty);
-
raw_tty = norm_tty;
raw_tty.c_iflag &= ~(BRKINT|INLCR|ICRNL|IGNCR);
--- 297,302 -----
cookie_size = two_cookies = 0;
raw_tty = norm_tty;
#ifdef HAVE_TERMIO
**************
*** 297,302
raw_tty = norm_tty;
raw_tty.c_iflag &= ~(BRKINT|INLCR|ICRNL|IGNCR);
raw_tty.c_iflag |= IGNBRK|IGNPAR|ISTRIP;
raw_tty.c_oflag &= ~OPOST;
--- 299,305 -----
raw_tty = norm_tty;
+ #ifdef HAVE_TERMIO
raw_tty.c_iflag &= ~(BRKINT|INLCR|ICRNL|IGNCR);
raw_tty.c_iflag |= IGNBRK|IGNPAR|ISTRIP;
raw_tty.c_oflag &= ~OPOST;
**************
*** 307,315
raw_tty.c_cc[VEOL] = ((raw_tty.c_cflag & CBAUD) > B1200) ? 1 : 2;
#else
-
- ioctl(0, TIOCGETP, &norm_tty);
-
ioctl(0, TIOCGETC, &norm_chars);
#ifdef TIOCGLTC
--- 310,315 -----
raw_tty.c_cc[VEOL] = ((raw_tty.c_cflag & CBAUD) > B1200) ? 1 : 2;
#else
ioctl(0, TIOCGETC, &norm_chars);
#ifdef TIOCGLTC
**************
*** 318,325
ospeed = norm_tty.sg_ospeed;
if (ospeed < B2400) slow_mode++;
-
- raw_tty = norm_tty;
raw_tty.sg_flags |= RAW;
raw_tty.sg_flags &= ~(ECHO|CRMOD);
--- 318,323 -----
ospeed = norm_tty.sg_ospeed;
if (ospeed < B2400) slow_mode++;
raw_tty.sg_flags |= RAW;
raw_tty.sg_flags &= ~(ECHO|CRMOD);
*** /usr/storm/nn6.3.0/xmakefile
--- xmakefile
**************
*** 55,61
init.o variable.o term.o keymap.o macro.o regexp.o \
menu.o more.o rc.o group.o folder.o \
articles.o sequence.o selection.o kill.o \
! answer.o reroute.o save.o unshar.o execute.o \
pack_date.o pack_name.o pack_subject.o news.o digest.o match.o
MAIL = nnmail.o reroute.o global.o options.o update.o
--- 55,61 -----
init.o variable.o term.o keymap.o macro.o regexp.o \
menu.o more.o rc.o group.o folder.o \
articles.o sequence.o selection.o kill.o \
! answer.o reroute.o save.o unshar.o decode.o execute.o \
pack_date.o pack_name.o pack_subject.o news.o digest.o match.o
MAIL = nnmail.o reroute.o global.o options.o update.o
**************
*** 195,200
date_regexp.o: config.h global.h data.h
db.o: db.c config.h global.h data.h db.h
digest.o: digest.c config.h global.h data.h news.h match.h
--- 195,202 -----
date_regexp.o: config.h global.h data.h
db.o: db.c config.h global.h data.h db.h
+
+ decode.o: decode.c config.h
digest.o: digest.c config.h global.h data.h news.h match.h